package edu.scsu.csci.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;


/**
 *<p>	Defines whether the given class could be invoked from the UI and
 *	also lists the operations that could be exposed.
 *
 * @author Maqbool Khan
 * @since jdk 1.5
 * @see
 */
@Target( { ElementType.TYPE, ElementType.METHOD })
@Documented
@Retention(value = RetentionPolicy.RUNTIME)
public @/**
 * @viz.diagram AExpose.tpx
 */
interface AExpose {
	
	/**
	 * @return
	 */
	 boolean expose() default true;
	
	/**
	 * <p>	the actions (methods)that could be invoked.
	 * 
	 * @return list
	 */
	 String[] allow() default {};
	 
	 /**
	 * <p>	the actions (methods) that should not be invoked.
	 * 
	 * @return list
	 */
	 String[] disAllow() default {};
}
